Skip to main content

第21章计算机的数制

数制,也称为计数制,是用一组固定的符号和统一的规则来表示数值的方法。在计算机中,由于硬件电路的特性,广泛采用二进制进行数据的存储和运算,同时为了方便人类理解和使用,也会用到八进制、十进制和十六进制。

21.1 数制的基本概念

21.1.1 基数

基数是指在某种数制中,每个数位上所能使用的数字符号的个数。

  • 十进制:基数10,符号0-9
  • 二进制:基数2,符号0、1
  • 八进制:基数8,符号0-7
  • 十六进制:基数16,符号0-9、A-F(a-f)(A=10,B=11…F=15)

21.1.2 位权

位权 = 基数的nn次方,从右往左,下标从0开始。 例十进制1231×102+2×101+3×100=1231×10^2 + 2×10^1 + 3×10^0 = 123

21.2 计算机中常用的数制

21.2.1 十进制(Decimal)

标记后缀D,可省略;逢十进一、借一当十,日常使用。

21.2.2 二进制(Binary)

标记后缀B,仅0、1;逢二进一。 计算机底层唯一存储格式,晶体管导通/截止对应1/0。 运算规则: 加法:0+0=0, 0+1=1, 1+0=1, 1+1=100+0=0,\ 0+1=1,\ 1+0=1,\ 1+1=10 减法:00=0, 10=1, 11=0, 101=10-0=0,\ 1-0=1,\ 1-1=0,\ 10-1=1

21.2.3 八进制(Octal)

后缀O/Q;3位二进制等价1位八进制,用于简化书写长二进制串。逢八进一。

21.2.4 十六进制(Hexadecimal)

后缀H;4位二进制等价1位十六进制,编程最常用,逢十六进一。

21.3 数制之间的转换

21.3.1 任意进制 → 十进制

规则:按位权展开求和。

  1. 二进制1011B1011B 1×23+0×22+1×21+1×20=111×2^3+0×2^2+1×2^1+1×2^0 = 11
  2. 八进制123O123O 1×82+2×81+3×80=831×8^2+2×8^1+3×8^0 = 83
  3. 十六进制1A3H1A3H 1×162+10×161+3×160=4191×16^2+10×16^1+3×16^0 = 419

21.3.2 十进制 → 任意进制

整数部分:除基取余,逆序输出 小数部分:乘基取整,顺序输出 示例1:十进制11转二进制 11÷2=511÷2=5 余1 5÷2=25÷2=2 余1 2÷2=12÷2=1 余0 1÷2=01÷2=0 余1 余数逆序:10111011

示例2:十进制83转八进制 83÷8=1083÷8=10 余3 10÷8=110÷8=1 余2 1÷8=01÷8=0 余1 逆序得123123

示例3:十进制419转十六进制 419÷16=26419÷16=26 余3 26÷16=126÷16=1 余10(A) 1÷16=01÷16=0 余1 逆序1A31A3

21.3.3 二进制 ↔ 八 / 十六进制

二进制 ↔ 八进制

3位二进制分组,不足左边补0; 例:101101B101101B 分组101 10155O55O 八进制转二进制:1位拆3位,去掉前导0。例65O65O110 101

二进制 ↔ 十六进制

4位二进制分组,不足左边补0; 例1011010110110101 分组1011 0101B5HB5H 十六进制转二进制:1位拆4位,去掉前导0。